package com.qf.business.user.task;

import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;

/**
 * description:
 * author: Ken
 * 公众号：Java架构栈
 */
@Component
public class XxlJobHandler {

    /**
     * 这是一个测试的定时任务
     *
     * 广播模式：所有的执行器同时执行某个任务 - 场景：同时让每台服务器都删除本地缓存
     * 分片模式：所有执行器同时执行某个任务，但是分片模式会携带分片参数让每个执行器确定任务的范围
     *
     */
    @XxlJob("myjob")
    public void handler(){

        int shardIndex = XxlJobHelper.getShardIndex();
        int shardTotal = XxlJobHelper.getShardTotal();
        System.out.println("分片的总量：" + shardTotal + " 分片的下标：" + shardIndex);

        //任务 - 处理1W条数据
        //每台机器处理多少条 - 1W / 5 = 2000
        //select * from xxx where xxxx limit 0 * 2000, 2000 //前5000条数据
        //select * from xxx where xxxx limit 1 * 2000, 2000 //后5000条数据
        //select * from xxx where xxxx limit 2 * 2000, 2000 //后5000条数据


        System.out.println("午时已到！！！");
    }

    /**
     * 这是一个测试的定时任务
     */
    @XxlJob("myjob2")
    public void handler2(){
        System.out.println("天降正义");
    }
}
